1. Field of the Invention
The present invention relates to a semiconductor integrated circuit. More particularly, the invention relates to a semiconductor integrated circuit including a macro that receives a control signal.
2. Description of the Related Art
Heretofore, a debugger used for debugging a program generally recognizes an execution state of the program by acquiring execution history information on the program in advance and then by referring to and analyzing the execution history information after an abnormal termination of the debugging. In this method, the user can easily acquire data indicating information acquired when the debugging terminates abnormally. However, as to information indicating how the debugging terminated abnormally, the user needs to review and then analyze the information. In this respect, Japanese Patent Application Publication No. 2004-252684 discloses a debugging method including: an information acquisition step having the steps of outputting execution history information at the time of execution of a program, acquiring debug information required for executing the program at a later time, and outputting information for associating the execution history information with the debug information; and a step of reproducing the state when any execution history information is outputted, by use of information acquired in the information acquisition step and then re-executing the program. With the method disclosed in Japanese Patent Application Publication No. 2004-252684, the cause of an abnormal termination of debugging is specified easily by use of the information acquired in the information acquisition step.
Furthermore, Japanese Patent Application Publication No. 2005-352591 discloses a multiprocessor system that attempts to improve a debugging efficiency by setting multiple breakpoints, without adding a specific hardware device dedicated to debugging. Regarding the setting of breakpoints, this multiprocessor system allows breakpoint occurrence conditions to be individually set in multiple CPUs by use of a breakpoint setting table. The multiprocessor system is configured to interrupt the execution of a debug target program and then to call a debugger program in a case where all of these conditions are satisfied and also information in the breakpoint setting table and information in a breakpoint history table match with each other.
In the aforementioned conventional techniques, however, there are the following problems. Suppose that the state of a certain macro that is a debug target changes by a factor other than the debugger while the certain macro is being debugged as the debug target by the debugger. Incidentally, the state of a macro refers to an internal signal or an output signal of the macro, for example. A possible scenario is that when a macro other than the macro being the debug target transmits a control signal such as a reset signal to the debug target macro, the state of the debug target macro receiving this control signal transitions, for example. In this case, the state of the debug target macro transitions despite that the macro is being debugged by the debugger. As a result, the debugger loses information indicating the position of the program to be executed during the execution of debugging and then terminates the debugging abnormally (hangs). Such an abnormal termination occurs since the debugger cannot recognize the external cause such as the control signal to be transmitted by a factor other than the debugger.
In an actual system including multiple masters, for example, a master/slave relationship exists even among multiple macros that are all masters. Accordingly, there is a case where a master among these multiple macros resets a slave among these multiple macros. In a case where a debugger debugs these macros, it is thus necessary to provide, in a program, a setting to prohibit a master that becomes active during the debugging from resetting a salve. Such a setting is, however, not within the original sequence of a software program.